// 工具类函数
function getRandomInt(min, max) {
  return Math.floor(Math.random() * (max - min + 1) + min)
}

export function shuffle(arr) { // 洗牌打乱数组
  let _arr = arr.slice()
  for ( let i=0; i<_arr.length; i++ ) {
    let j = getRandomInt(0, i)
    let t = _arr[i]
    _arr[i] = _arr[j]
    _arr[j] = t
  }
  return _arr
}

// HTML字符实体转换
export function entityToString(entity) {
  let oDiv = document.createElement('div')
  return oDiv.innerHTML = entity
}

// 去除字符串两端空格
export function _trim(str) {
  return str.replace(/(^\s*)|(\s*$)/g, '')
}

// 函数柯里化 节流函数
export function debounce(fn, delay) {
  let timer
  return function (...args) {
    if(timer) {
      clearTimeout(timer)
    }
    timer = setTimeout(() => {
      fn.apply(this, args)
    }, delay)
  }
}